Apparatus and method for dynamically updating and communicating within flexible networks

ABSTRACT

A software-based application dynamically updates user lists and enables communication between various network communication devices within a wireless network. The software-based application automatically builds and maintains a list of available users associated with the network communication devices in real-time, without reliance on a centralized server for authentication. Various types of communication, between network communication devices of the wireless network including text-based messaging, audio and video communication and file transfer are performed.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 12/405,056, filed on Mar. 16, 2009, titledAPPARATUS AND METHOD FOR DYNAMICALLY UPDATING AND COMMUNICATING WITHINFLEXIBLE NETWORKS, which is a continuation of and claims priority toU.S. patent application Ser. No. 11/383,775, filed on May 17, 2006,titled APPARATUS AND METHOD FOR DYNAMICALLY UPDATING AND COMMUNICATINGWITHIN FLEXIBLE NETWORKS, which claims priority under 35 U.S.C. section119(e) of U.S. Provisional Patent Application No. 60/715,705 filed onSep. 7, 2005, U.S. Provisional Patent Application Ser. No. 60/714,743filed on Sep. 7, 2005 and U.S. Provisional Patent Application Ser. No.60/715,472 filed on Sep. 7, 2005; which application is incorporated byreference in this application in its entirety.

FIELD OF INVENTION

The present invention relates to wireless networks and more particularlyto establishing and maintaining communications over mobile or ad-hocnetworks, including structured and unstructured mesh networks.

BACKGROUND OF THE INVENTION

Network communication of data, voice or video often requires one or moreservers or central access points for various applications to be executedwithin the network. In cellular communications, for instance, fixed basestations are used to provide communication with mobile devices, such ashandsets. Such communication networks are often found to be inflexibledue to the necessity of having fixed communication points and/orservers. Moreover, if a central control server becomes unavailable orinoperable for any reason (e.g., inclement weather, natural disaster,act of destruction, etc.), communication throughout the network may belost.

Recently, self-forming wireless mesh networks have been developed.Although such communication platforms have been established,applications in this environment have been limited. The ability todynamically update the universe of unique users participating within themesh network as well as the provision of communications applications isdesirable to many network users. This is often the case for users thatare in a tactical environment in which a user depends on messaging as atactical tool.

Accordingly, there is a need for a decentralized and flexible networkarchitecture comprising these applications.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain embodiments of the present invention are illustrated by theaccompanying figures. It should be understood that the figures are notnecessarily to scale and that details not necessary for an understandingof the invention or that render other details difficult to perceive maybe omitted. It should be understood, of course, that the invention isnot necessarily limited to the particular embodiments illustratedherein.

FIG. 1 is a system diagram depicting various network communicationdevices that communicate to form a mobile wireless network.

FIG. 2 is a block diagram of the hardware components of the networkcommunication devices of FIG. 1.

FIG. 3 illustrates software components in a layered format for a networkcommunication device.

FIG. 4 is a screen display of a graphical user interface displayed at anetwork communication device.

FIG. 5A is a list of online users, as they may appear in the graphicaluser interface of FIG. 4.

FIG. 5B is a representation of icons for audio and video, as they mayappear in the graphical user interface of FIG. 4.

FIG. 6 is a flow chart illustrating the steps of establishing aself-configured user list.

FIG. 7 is a representation of a network participation packet.

FIG. 8A is a flow chart illustrating the steps performed for publiccommunications by the core application process.

FIG. 8B is a flow chart illustrating the steps performed for privatecommunications by the core application process.

FIG. 8C is a flow chart illustrating the steps performed for privatesub-group communications by the core application process.

FIG. 9 is a flow chart illustrating the steps performed for filetransfer between network communication devices.

FIG. 10 illustrates a panic alert screen for display at a networkcommunication device.

FIG. 11 is a flow chart illustrating the steps performed for issuing apanic alert.

FIG. 12A is a communication flow diagram illustrating the steps foraudio communication between network communication devices.

FIG. 12B is a communication flow diagram illustrating the steps forvideo communication between network communication devices.

FIG. 13 is an example of a log record identifying various communicationswithin the wireless network.

DETAILED DESCRIPTION

A software based application is provided, which enables theestablishment and maintenance of and communication with various types ofnetworks, including ad-hoc mobile networks and wireless mesh networks,with or without reliance on a centralized server used for authenticatingand coordinating network communication devices entering the network. Amobile or ad-hoc network is a self-configuring network of communicationdevices connected by wireless links, each network communication devicebeing free to move randomly and organize arbitrarily. Thus, the topologyfor the network may dynamically change depending on the location of thevarious network communication devices. The mobile or ad-hoc network istypically a local area network. A mesh network is a network that routesdata between nodes in the absence of a centralized server used forauthentication. Mesh networks provide continuous connections andreconfiguration around blocked paths by hopping from node to node in themost efficient path possible until connections can be established. Meshnetworks are self healing, which means that the network can stilloperate even when a node or other connection is inoperable. Each nodewithin the network authenticates the others. The nodes may, for example,be network communication devices, routers or network access points.Nodes are spaced at distances from each other in the local area ofcoverage for the wireless network. Increasing the number of nodesincreases the distance the mobile wireless network can span.

These networks can be established and maintained through networkparticipation packets sent between the various network communicationdevices within the network. The wireless networks are establishedthrough signaling between two or more network communication devices.Each network communication device transmits and receives signals fromthe other devices in the network. A core application process runs on thecommunication devices of the network and automatically builds andmaintains a list of available users associated with the networkcommunication devices in real-time. At start-up, the core applicationprocess searches for other network communication devices, and duringoperation monitors and updates the lists of available users on thenetwork. As provided herein, the interaction between the networkcommunication devices forms the mobile wireless network, and thus, aconventional network infrastructure of servers, routers, repeaters andthe like are not required to create the network. The core applicationprocess enables users at the network communication devices to connect toone other in the absence of a single centralized server to form, forexample, a mesh network. Text, voice and video communication is providedbetween the network communication devices within the wireless networkindependent of a centralized software platform. The wireless networkformed through the interaction between the network communication devicesis mutable such that it is able to run on many different communicationplatforms. The core application process is also adapted to run intraditional centralized or structured server environments.

The network communication devices of the wireless network areself-authenticating. The software-based network communication devicesautomatically search for available users (at other pre-configurednetwork communication devices) to provide secure authentication andaccess for broadband network connectivity. The network communicationdevices send and receive voice, video and data to other networkcommunication devices in the absence of a centralized server responsiblefor authenticating and coordinating network communication devicesentering the wireless local area network. The network configurationdevices provide direct peer-to-peer communication between devices in thenetwork without the need for access points or a traditional wirednetwork infrastructure.

A method for establishing and maintaining a wireless network isprovided. The wireless network comprises network communication devicesthat correspond to a plurality of users. The network communicationdevices continuously broadcasting network participation packets to othernetwork communication devices within a first predetermined interval,with each network participation packet comprising a unique useridentifier corresponding to each user. The wireless network isestablished through receipt and processing of the network participationpackets by the network communication devices. A database is providedwithin the network communication devices with the database comprisingthe unique user identifiers for the users within the wireless network.Remote user status variables are provided with each variable associatedwith one of the unique user identifiers. A determination of whether thenetwork participation packets, associated with each user listed withinthe database, are being received within a second predetermined intervalis performed. The remote user status variable is adjusted according towhether the network participation packets are being received within thesecond predetermined interval. At least one status request is sent tothe network communication device of each user whose remote statusvariable has reached a predetermined threshold.

The network communication devices are adapted to communicate text, voiceand video data with each other in the absence of a centralized serverresponsible for authenticating and coordinating the networkcommunication devices entering the wireless network. A current status ofaudio and video capabilities for each user is sent throughout thewireless network to be updated at each network communication device uponreceipt thereof. The remote user status variable may be an integer thatincreases by one each time the network participation packet is notreceived within the second predetermined interval. Adjusting the remoteuser status variable may include resetting the remote user statusvariable upon receipt of network participation packets from each networkcommunication device within the second predetermined interval. Uniqueuser identifiers may be removed from the database if a status request isnot acknowledged.

A method for establishing and maintaining a wireless network is providedin which individual ones of the network communication devices correspondto a user. A database of a network communication device stores uniqueuser identifiers with each unique user identifier associated with one ofthe users. Remote user status variables are also provided, with eachremote user status variable associated with one of the unique useridentifiers. At least one status request is sent to the networkcommunication device of each user whose remote user status variable hasreached a predetermined threshold. The wireless network provides text,voice and video communication between the network communication devicesindependent of a centralized software platform. Unique user identifiersare removed from the database if a status request is not acknowledged.

A network communication device for establishing and maintaining wirelesscommunication in a local area network is further provided. The networkcommunication device comprises a central processing unit, an input and adisplay screen and a memory component. The memory component has anetwork participation software module adapted to enable participation ina wireless network between network communication devices in the absenceof a centralized server. The memory component further has a texttransfer module adapted to a transfer a plurality of text-based messagesthroughout the network, wherein the display screen is adapted to displaythe plurality of text-based messages. An audio transfer module of thememory component is adapted to transfer audio from the networkcommunication device to other network communication devices within thewireless local area network. A video transfer module is adapted totransfer video from the network communication device to other networkcommunication devices within the network. The network participationsoftware module is adapted to broadcast packets to the other networkcommunication devices within the wireless network at a predeterminedinterval. The packets have a unique user identifier and usercapabilities information. A file transfer module of the memory componentis used for transferring files between the network communicationdevices. The memory component is provided with a panic alert module forsending a panic alert message to be displayed on a single display screenor all the display screens associated with network communication deviceswithin the wireless local area network. The memory components stores alog of all text-based messages, audio and video communications, and filetransfers between network communication devices within the wirelessnetwork. The text transfer module is adapted to send and receive privatetext-based messages between three or more users at network communicationdevices. Communication between the network communication devices in thewireless network is maintained while the network communication devicesare in transit to different locations within the wireless network.

FIG. 1 illustrates a wireless local area network 100 with networkcommunication devices 120 signaling with one another in forming thenetwork. The network communication devices 120, in this example, includea display screen 130 for the presentation of information to users and auser input device 140 (such as a keyboard, keypad, mouse, stylus,touchscreen, or any other computer input device) for inputtinginformation and performing actions at the network communication devices.For example, a network communication device 120 used in the mobilewireless network 100 may selectively be a laptop computer, personalcomputer (PC), wireless telephone, personal digital assistant (PDA), orany other device capable of receiving and/or transmitting voice, videoor data. To provide network connectivity, the network communicationdevices 120 may utilize a wireless memory card device such as a WMC6300model wireless modem memory card sold by Motorola, Inc. Each networkcommunication device 120 is capable of routing data packets to othercommunication devices of the network.

The mobile wireless network 100 may be established and maintained whilethe network communication devices 120 are in transit to differentlocations. Thus, a network communication device 100 may be located in atraveling vehicle 150 during online operation of the network. Voice,video and text data connectivity is available to users (such as mobileor tactical team members) traveling in moving vehicles, for example,even at high speeds up to 200-250 m.p.h. The mobile wireless network 100may selectively include other network nodes such as wireless routers 160(or access points connecting with wired networks) that receive andtransmit signals between each other and the other nodes (such as thenetwork communication devices) of the network. As discussed herein, thenetwork communication devices 120 of the network 100 may send andreceive voice, video and text data without the necessity of acentralized control server.

Users operating network communication devices 120 comprising softwareapplications can perform a variety of tasks. In brief summary, users canengage in text-based chatting with one another simultaneously as abroadcast function, similar to a chat room environment, chat privatelywith a sub-group of users or chat with a single individual in a separatewindow of a graphical user interface displayed at the networkcommunication device. The user may also choose to send other users(selected as specific individuals or as a group) a file through a TCPstream-based file transfer. The network communication devices are alsoprovided with audio and video communication capabilities within thewireless network. A video process optimized for low-bandwidthapplications utilizing a streaming jpeg code for full streaming videomay, for example, transmit real-time user images from a universal serialbus (USB) attached webcam, a network-addressable camera, or anyavailable configured video feed in analog or digital format. A chatprocess is also provided that allows live chatting between video usersat network communication devices.

Referring now to FIG. 2, a block diagram illustrating the hardwarecomponents of one embodiment of a network communication device 120 isshown. In this example, network communication device 120 is amicroprocessor-based unit having central processing unit 200 coupledwith an associated memory component 210. Memory component 210 comprisesprocesses component 220 and data storage component 240. Processescomponent 220 may store the software-based processes that are executedby the central processing unit 200 in performing various operations andtasks by the network communication device 120. For instance, coreapplication process 300 (shown in FIG. 3), and its associatedsub-processes may be stored in data storage component 240 and executedat the processes component 220 in memory 210. Data storage component 240also stores user capabilities of the network communication devices inthe network; updated online user lists, IP addresses, labels for usernames and security information.

With continuing reference to FIGS. 1 and 2, one or more user inputdevices 140 coupled with central processing unit 200 are employed toinitiate actions and input or modify information that may be displayedat display screen 130 of the network communication device 120. Forexample, a keyboard, keypad, mouse or any other computer input devicemay be used for interaction with a graphical user interface appearing onthe display screen 130 during user operation of the networkcommunication device 120. An audio input 250, such as a microphone, andaudio output 260, such as a speaker, are coupled with central processingunit 200 to provide audio functionality at the network communicationdevice 120. A video device 270, such as video camera, digital videorecorder or cell phone with video capabilities may be connected with thenetwork communication device 120 for video transmission to other devicesin the network 100. Video output is displayed at the display screen 130via graphical user interface during video communication through thenetwork.

Network interface 280 is coupled with central processing unit 200 forthe transmission and receipt of voice, video and data communicationsignals with the network communication devices 120 (and other nodedevices) of the network 100. Network interface 280, for example, may bebut not restricted to, a TCP/IP compatible transmitter and receivercommunication device, a universal serial bus device or an Institute ofElectronics and Electrical Engineers (IEEE) Standard 802.11 compliantmemory card for transmitting and receiving data in packets to and fromother network communication devices in the network. For example, aWMC6300 model wireless modem memory card sold by Motorola, Inc. mayselectively be employed at the network communication devices 120.

The software used with the system, referred to generally as coreapplication process 300, is shown in FIG. 3. Core application process300 is resident on the network communication devices 120 (FIG. 1) thatform the wireless network 100. Core application process 300 is anencrypted software tool that enables secure collaboration with users onthe network. An advanced encryption standard (AES) at 128 bit isprovided for security at the network communication devices 120 withauditing capabilities of various communications such as: chats, instantmessages, file transfers, video and audio. Voice, video and datacommunication may occur over the local area network. Networkcommunication devices 120 are able to communicate online using standardInternet and other network protocols in wired, wireless, or hybridnetwork environments. Communication may selectively be performed with orwithout a centralized server.

FIG. 3 illustrates the software-based components of core applicationprocess 300 in a layered format. As shown in FIG. 3, the varioussoftware-based components of core application process 300 are structuredin a framework such that each process is separate but linked togetherthrough the sharing of common data and services so that each process canrun at the same time and failure of one process will not cause failureof another. Core application process 300 establishes video, voice anddata communication between the network communication devices 120 of FIG.1 in mobile wireless network 100. The core application process 300resides in the processes component 220 shown in FIG. 2, in memory 210for the individual network communication devices 120 that form themobile wireless network 100.

In an exemplary embodiment, voice, video and data communicationfunctionality are performed by various software-based components of coreapplication process 300. For instance, data communication in the mobilewireless network may be performed by public text message process 305,private text message process 310, network activity display process 315,and user monitoring process 320. Public text message process 305performs the processing related to public chat in which text messagesare communicated to all network communication devices 120 that areonline in the network 100. The private text message process 310 performsthe processing related to private chat communications in which textmessages are sent between two network communication devices 120, but arerejected and not seen by the network communication devices of otherusers. Network activity display process 315 displays the status ofcurrent and recently known network communication devices 120 within thenetwork. User monitoring process 320 performs the processing related tothe self-configuring online user lists that are stored and updated inthe data storage component 240 (FIG. 2), in memory 210.

In addition, various sub-processes may be employed in developing theself-configuring user list of online network communication devices.Incoming packet queuing process 322 places packet information that isreceived at the network communication device in queue. Packet filterprocess 324 inspects and rejects invalid packets. Packet payloadhandling process 326 parses information in each packet and providesindividual data to the appropriate other process components of the coreapplication process. Additionally, network self-populating user database328 is provided at the data storage component 240, FIG. 2, in memory 210for persisting individual user data, and ages/deletes information atappropriate intervals.

Voice communication functionality is handled by the audio processingcomponent 340. Audio driver 345 handles actions relating to thetransmission of audio information to remote network communicationdevices 120. Audio capture 350 performs the processing related to thereceipt of incoming audio information received at the networkcommunication device from remote devices in the network. Audio input andoutput filters 352, compression filters 354 and speaker amplificationfilter 356 are utilized for executing audio functionality for thenetwork communication device. Specifically, audio input filter 352receives data from audio device driver and passes it through filter 356,which calculates the amplitude of the signal. Data within amplitudelimits may be passed along to compression filter 354 and over thenetwork to a remote device in the form of a raw TCP stream.

Panic alert process 360 is provided as part of the core applicationprocess 300 to provide a panic alert display message and audio signalingto each of the remote network communication devices upon user activationof a panic icon 422, displayed at user interface 400, shown in FIG. 4.

Core application process 300 further comprises frame process component365 for the labeling and compression of frames for video display. Theframe process component 365 regulates the number of frames per secondsent and/or received to permit optimum viewing when limited network orclient computer resources are available.

Video communication is further provided between the networkcommunication devices 120 through video display process 370 and videocapture process 375. The video display process 370 handles theprocessing relating to the display of video images at a networkcommunication device that are received from remote devices in thenetwork. The video capture process 375 handles the processing related toobtaining video at the network communication device 120 for transmissionand display at the remote network communication devices in the network.

Related to the layers of core application process 300 are an operatingsystem services layer and various device drivers. Operating systemservices layer opens and closes sockets to pass data to device drivers(not shown). Device drivers allow the operating system and/or otherapplications to communicate with connected hardware device, such as acamera, a speaker or a memory card.

With continuing reference to FIGS. 1-4, formation of network 100 occurswhen various users with network communication devices 120 access thenetwork and the network communication devices send a networkparticipation packet to the other network communication devices. Theterm network participation packet, as used herein, means a packet ofinformation transmittable between the various devices within a networkto indicate the presence or participation of said devices within thenetwork. The core application process 300 functions in the network 100through the use of a discovery engine that locates active networkaddresses listening on a configured port in accordance with thealgorithm set forth in FIG. 6.

FIG. 6 is a flow chart illustrating the establishment and maintenance ofa network in accordance with one embodiment of the present invention. Ingeneral, once each user enters the network area, user monitoring process320 sends network participation packets over a user datagram protocol(“UDP”) at regular predetermined intervals to other networkcommunication devices 120 within the network 100; the packets arereceived, examined and acknowledged.

As an initial matter, the packets are generated through translation of anetwork address (associated with each user) into a user name. An examplerepresentation of a packet, shown in FIG. 7, comprises user-specificpacket identification integer 710, typically comprising a 16 characterstring, which may be the Internet protocol address (IP address) of theunique user followed by an integer, separators 715 and 725, payload typeidentifier 720, typically in the form of a letter designating thepayload type (e.g., m=broadcast message) and payload 730, comprising theunique user identifier for each user and medium access control addressor MAC address and the packet being sent. Payload 730 may furthercomprise all known IP addresses for the user, the status of audio andvideo capabilities for each unique user (i.e., whether the networkcommunication device for each user is presently accepting and sendingaudio and/or video) and whether the user is a participant in a sub-groupprivate chat.

Referring to FIGS. 3 and 6, network communication devices 120 establishand maintain a network by repeatedly sending the aforementioned packetsto a specified port. Specifically, in step 602 the core applicationprocess 300 is initiated. In step 604, the specified port for the useris opened and a packet receive timer is activated. Packet receive timeris set to a first predetermined interval according to the expectedduration between receipt of network participation packets from each ofthe various network communication devices within the mobile wirelessnetwork.

Establishment of the wireless network communication application beginswith a broadcast of network participation packets from the networkcommunication devices 120 of all users who have initiated the coreapplication process. In step 606, network communication packets, each ofwhich comprise unique user identifiers and user capabilities, arecontinuously broadcast to open ports in other network communicationdevices 120 at a second predetermined interval. The second predeterminedinterval may or may not equal the first predetermined interval. In step608, the various network communication devices 120 listen for andreceive incoming packets from the other network communication devices120. Upon receipt of same, packet filter process 326 and packet payloadhandling process 326 process the packet and a self-populating userdatabase comprising the unique user identifiers is established. Theself-populating user database may further comprise remote user statusvariables associated with each user associated with a networkcommunication device. The term remote user status variable, as usedherein, means any variable adjustable according to whether networkparticipation packets are being received at the first predeterminedinterval set in the receive timer. For example, the remote user statusvariable may selectively be an integer between 0 and 6.

Once the self-populating database is established, the various networkcommunication devices within the network continue to listen for and sendthe packets. In step 610, each network communication device continueslistening for and receiving incoming network participation packets. Instep 612, user monitoring process 320 ascertains whether incomingnetwork participation packets already reside in the self-populatingdatabase. If the sending user is previously unknown to the receiver, instep 614 the core application process 300 for the receiving device addsthe name and address of each user to its self-populating network userdatabase 328 and populates its online user list with the configured namefor the sender along with user capabilities. If the user name is alreadypresent the receive timer is reset and user capabilities are updated instep 616. In step 617, network participation packets are not received atthe first predetermined interval and the receive timer goes off.

With network connectivity established, maintenance follows. In step 618,user monitoring process 320 for each network communication device 120checks to see whether network participation packets are being receivedfrom each unique user within the first predetermined intervalestablished by the receive timer. If so, in step 620, theself-populating database maintains the appropriate unique users and theremote user status variables for the users are reset. If not, in step622, the remote user status variable for the users whose networkparticipation packets were not received is adjusted. The remote userstatus variable, for example, may be increased by one each time anetwork participation packet is not received from a given user withinthe first predetermined interval.

If the remote user status variable reaches a predetermined threshold,shown in step 624, further action is taken. For example, if the remoteuser status variable=3 (e.g., three consecutive expired receive timerswithout receipt of a network participation packet from the same uniqueuser), status requests may be sent. In step 626, at least one statusrequest is sent to each network communication device whose remote userstatus variable has reached the predetermined threshold. In step 628,user monitoring process 320 for the sending network communication deviceascertains whether the status request acknowledged or networkparticipation packets for the non-responsive unique user have beenreceived. For example, three status requests may be sent at five secondintervals. In the absence of a response all three status requests orarrival of a network participation packet from the non-responsive user,in step 630, the unique user identifier for that user is dropped fromthe self-populating database and the user no longer appears on thedisplay screens of the network devices for the other users. A customizedmessage may thereafter appear on all remaining network communicationdevices 120 stating “<<configured user name>> has left the area”. If aresponse is made, in step 632, the name of the user is maintained in theself-populating user database and the remote user status variable isreset. In this way, core application process 300 is able toauto-discover and auto-populate online user lists.

After wireless network formation, users may communicate throughgraphical user interface 400 that appears at the display screen 130 ofeach network communication device 120. One embodiment of graphical userinterface 400 is shown at FIG. 4. User interface 400 comprises threemain activity areas or modules, including (1) chat/instant messageactivity area 402 for engaging in text based discussions and sending andreceiving instant messages, (2) file transfer activity area 404 fortransferring files to and from other network communication devices and(3) voice/video chat activity area 406 for sending and receiving liveaudio and video.

A key component of team centered missions and tactical deployment isensuring that everyone has correct information and applies it at theright time and place. Chat/instant message activity area 402 displaystext based messages to network users or select network users as well asthe identity of users within the network. Chat/instant message activityarea 402 includes toolbar 408 navigation bar 410, text message area 412,online user list 414, text attribute buttons 416 and send to all usersbutton 418. Core application process 300, shown in FIG. 3, automaticallyinserts a MAC address or a name selected by the sender into online userlist 414.

Toolbar 408 includes icons for enabling various features, includingsettings icon 420, panic icon 422, sub-group chat icon 424, desktopprogram icon 426, docking/undocking icon 428, and exit icon 430. Settingicon 420 allows users to alter settings, including, for example, chat,video and name display settings. Panic icon 422 sends a panic alertmessage to other users at network communication devices. Sub-group chaticon 424 allows formation of a sub-group of network communication deviceusers who can engage in a confidential chat. Desktop program icon 426allows users to open other programs, such as Microsoft Word. Dock/undockicon 428 allows users to combine and separate the three activity areas.Exit icon 430 shuts down the core application process.

Navigation bar 410, which may be located on each of the three activityareas, allows users to move the activity areas to other areas of thedisplay screen. A network communication device user clicks onundock/dock icon 428 and uses navigation bar 410 to drag each activityarea to the desired location of the display screen. Additionally,navigation bar 410 can be used to minimize user interface 400 to work onother software programs, by clicking on minimize button 434. Navigationbar 410 also allows users to close user interface 400 by clicking onterminate button 436.

When a user enters the network, the name of the user, along with otheruser names, appear in online user list 414. The name of the user alsoappears next to text attribute buttons 416, along with a messageindicating that the user has now entered the mobile wireless network. Ifa user is idle (i.e., doesn't touch his or her mouse or keypad), username is italicized. When a user leaves the mobile wireless network, hisor her name will “gray out” or disappear from online user list 414.

Chat/instant message activity area allows both chatting and instantmessaging. Chatting allows several network users to simultaneously andconfidentially communicate using text-based messages. Chatting takesplace in text message area 412. Instant messaging enables two networkusers to carry on a live private conversation in a pop-up window. A userdatagram protocol (“UDP”) typically broadcasts command sends text-basedmessages to the other network communication devices 120 in the wirelessnetwork 100.

The process for engaging in chatting by sending public messages isdisplayed at FIG. 8A. In step 802, a user types the message in textmessage area 412 and clicks send to all button 418. In step 804, apublic message packet, comprising a unique packet identifier, packettype and payload, is assembled. In step 806, the public message isdisplayed in the local text message area for the sender and then, instep 808, broadcast via UDP through the network. In step 810, the publicmessage packet is received by listening network communication devices120 and placed into incoming packet queuing process 324 in step 812. Instep 814, the packet is processed by passing it through packet filter324 and packet payload handling process 326. Once it is determined thatthe packet comprises a public message, in step 816, the payload and IPaddress for the sender are passed to a function that displays theusername and message in text message area 412 of all users.

The process for instant messaging, with private message, is displayed atFIG. 8B. In step 852, a user clicks on a neighboring user in the inonline users list 414. In step 854, a private message window appears andthe identity of the neighboring user is stored in an in-memory database.In step 856, the user types a message in the private message entry boxand clicks send. In step 858, a private message packet, comprising aunique packet identifier, packet type and payload, is assembled. In step860, the outgoing message is displayed in the local message window ofthe sender and is sent directly to remote user, via UDP for example,over the network in step 862. In step 864, the private message packet isreceived by the remote user and placed into incoming packet queuingprocess 322 in step 866. In step 868, the packet is processed by passingit through packet filter 324 and packet payload handling process 326. Instep 870, the packet is placed into a processing queue. In step 872, thename of the sender and a private message are displayed in a privatemessage window. If no private message window is found, one is createdand the identity of the sending user is stored in memory. To end aninstant messaging session, a user simply clicks on the close button inthe upper right hand corner of the private message window. Of course,more than one instant message conversation can take place at the sametime. Clicking several network user names in the online user listgenerates several private messaging windows.

The difference between public chatting and private instant messaging isthat the chat function is for public group conversations of two or morepeople and instant messaging is for private conversations between twopeople only. Depending on the circumstances, users can employ both atthe same time or one or the other. In either case, to ensureconfidential communication, messages are encrypted when sent.

A sub-group of network users may also be formed by using sub-group icon424. Members of the sub-group can participate in a private or“privileged” group chat, at the same time they are chatting with allother members at network communication devices 120 of the network 100.Importantly, network communication device users who are not part of thesub-group are unable to view or respond to the messages being exchangedby the sub-group even though both chats are taking place in the samechat area at the same time. The network communication device users inthe sub-group can, however, view both general and private messages beingexchanged.

In a default mode, all authorized network communication devices 120 cansend, receive, and display all chat room communications. The coreapplication process 300, FIG. 3, further enables each networkcommunication device to act as a “team leader device” to have additionalcontrol over which devices can communication with each other. Activationof this control to establish sub-groups, in one example, is performedvia a password prompt, accessed through the user interface.

Once the password is entered into a network communication device 120,that device acts as a team leader device. The password unlocks andactivates a dual-communications mode in the team leader device. Thisdual-communications or sub-group mode enables the team leader device tooperate in the default “open” communications mode and in a secondary“restricted” communications mode. In addition, it also allows the teamleader device to activate the dual-communications or sub-group mode inother user-specified network communication devices running the coreapplication process.

Activation of sub-group mode occurs when a network communication deviceuser clicks on sub-group icon 424 and selects a group of individualsfrom online user list 414. Chat/instant message activity area 402thereafter displays each selected user name in bold, but only to membersof the sub-group and not other network users. When the sub-group firstforms, a message is displayed in the text message area 412 of eachrecruited network user informing them they are now part of thesub-group. After sub-group formation, the chat/instant message activityarea 402 for each recruited user changes to accommodate sub-groupmembers. Instead of a single send to all users button 418, a toprivileged users button 438 also appears. Clicking on these buttonsdetermines which users will have access to text-based messages.Text-based messages sent between sub-group members also change. Theseprivate messages may be displayed in bold red between brackets [ ]. Thisidentifies which messages are sent to all network communication deviceusers as opposed to just the selected group.

FIG. 8C is a flow-chart illustrating the steps for private sub-groupmessaging. In step, 875, a user selects one or more users to participatein private sub-group chatting. In step 877, the selected sub-groupmembers are designated in the self-populating database of the networkcommunication device 120 for each user within the group. A send to groupbutton appears almost immediately thereafter on each of the displayscreens for the sub-group members. In step 879, one of the sub-groupmembers enters a text message and clicks on the send to group button. Instep 881, the sender network communication device loops through theself-populating user database and individually sends a sub-group messagepacket to each sub-group member designated in the self-populating userdatabase. In step 883, the incoming sub-group message packet is receivedand processed. Private text message process, in step 885, checks to seewhether the command group message packet emanated from a valid sub-groupmember. If so, in step 887, the text message appears in highlighted formin the text message area 412 of the sub-group members only. In this way,the sub-group members can view public text-based messages at the sametime as private sub-group messages in the same activity area.

Sharing information is important to effective communication betweennetwork users. File transfer activity area 404 enables networkcommunication device users to transfer any properly formatted data overthe network 100, including text based files, photos, video clips andaudio clips. File transfer activity area 404 may comprise file transferuser list 440, file select icon 442, incoming file transfer area 444 andoutgoing file transfer area 446. File transfer is synchronous. Inaddition, files may be sent and received at the same time, by onenetwork user or several network users.

The process for accomplishing file transfer is shown in FIG. 9. Once auser operating a network communication device 120 decides to send a fileto another user in the network, in step 902, the sending user at anetwork communication device 120 selects a receiving user by singleclicking on the user name(s) in file transfer user list 404. In step904, the sending user selects a file to send by clicking on select fileto send icon 403, which opens folders with various files to send toreceiving user(s). The sending user selects a file by clicking on it. Instep 906, the network communication device 120 for the sender generatesa command to send the file to the receiving user. The receiving user candecide whether to accept or decline file transfer. In step 908, thenetwork communication device 120 for the sending user forwards a requestto the IP address corresponding to the identification number associatedwith the remote user, requesting authorization to send the file. Thefile particulars, including file size and name, are shown to thereceiving user during the request for authorization. In step 910, thenetwork communication device 120 for the sender listens for a connectionto the receiving network communication device. In step 912, thereceiving device indicates whether the user will accept or refuse theauthorization request. If the receiving user declines the authorizationrequest, the network communication device for the receiving usergenerates and sends a decline message to the network communicationdevice for the sender, which, in step 914, causes the sender device toterminate listening for the connection. If the user accepts the request,in step 916, the network communication devices 120 connect, typicallythrough an open socket connection, and the file is sent over the mobilewireless network 100 through the socket.

In the event a network user encounters trouble or an emergency, panicicon 422, shown in FIG. 4, can be employed to alert other network users.The process for issuing a panic alert is shown at FIG. 11. In step 1102,a user activates the panic alert button, which in step 1104, causesassembly of a panic alert packet, comprising user name, IP address,packet type and payload and a predetermined character corresponding to apanic alert screen. In step 1106, the panic alert packet travels throughthe panic alert process 360 at the sender network communication device,which, in step 1108, recognizes it as such and sends it along to theother network communication devices 120 in the network 100. Once thepanic alert message is received, in step 1110, it travels through theincoming packet queuing process 322 of the receiving user. In step 1112,the packet is processed in packet filter process 324 and packet payloadhandling process 326, where it is recognized as a panic alert. Themoment the panic alert packet is recognized, in step 1114, a panic alertdisplay is displayed. A panic alert is shown at FIG. 10. As shown inFIG. 10, panic alert display comprises a transparent red screen, name ofthe issuing user, IP address and the words “panic alert” in bold. Otherusers may acknowledge the panic alert by clicking on the screen, whichremoves the panic alert display.

Having the capability to send and receive audio and video data to andfrom any network communication device 120 user is also helpful toorchestrating and executing team oriented tasks. The networkcommunication device enables peer to peer communication throughvoice/video chat activity area 406, shown in FIG. 4. Audio communicationis accomplished through a continuous stream of data over a consistentconnection while video communications involve sending of discreetpackets or bursts of information. Since audio and video rely ondifferent data streams, network communication device users can connectto one without the other. In addition to communication between remotenetwork communication devices, cameras or microphones may be placed inremote connections and connected to the network, thereby allowingmonitoring of predetermined areas for safety and other purposes.

Referring again to FIG. 4, voice/video activity area 406 comprisesremote user video and audio selector 448 and connector 450, remote uservideo display area 452, remote user audio confirmation indicator 454,frames per second indicator 456, broadcast quality selector 458,operating user camera display area 460, operating user audio and videoenablers 462 and 464, remote user audio enabler 466, noise leveladjuster 468, video chat window 470 and video chat message box 472 forsending text-based messages. As discussed hereinafter, video and audioselector and connector 448 and 450 are used to establish a connectionwith a remote network communication device 120, FIG. 1. Remote uservideo display area 452 and remote user audio confirmation indicator 454display video and confirm audio emanating from users stationed at remotenetwork communication devices 120.

Sending user audio and video enablers 462 and 464 and remote user audioenabler 466 may be used to start and stop audio and video transmissionafter connection. If sending user audio and video enablers 462 and 464are not check marked, then connected remote users cannot receive audioand video because transmission will not occur. If remote user audioenabler 466 is not checked, the user will not be able to hear the audiostream from a remote user. To disable audio but not video, an operatinguser may simply uncheck remote user audio enabler 466.

The quality of video is dependent on several factors, includingavailable bandwidth, frames per second and broadcast quality setting.The network communication device 120 automatically adjusts for thesefactors. Direct control of video quality, however, can also be achievedthrough adjustments to frames per second indicator 456, which adjuststhe number of sequential framer requests the operating networkcommunication device 120 requests from the video stream from a remotenetwork communication device. Additionally or alternatively, theoperating user may contact the remote user to request adjustments to thebroadcast quality indicator 458. Noise level adjuster 468 providesfine-tuning for audio broadcasts to remote network communication deviceusers. That is, noise level adjuster sets the amplification level thenetwork communication device 120, FIG. 1, accepts for transmission toother network communication devices in the network.

Video chat window 470 has a similar operation and functionality as themain chat activity area 402, except that video chat is only open tonetwork communication device users with video connections. Video chatallows network communication device users connected by video (i.e., ifan operating user is connected to a remote user or other multiplenetwork users are connected to an operating user) to discuss video beingviewed. This is particularly useful if audio is disabled.

As shown in FIGS. 4, 5A and 5B, online user list 414 indicates whichusers can send and receive audio and video feed, with eye 474 indicatingvideo capability and speaker 476 indicating audio capability. A boldedeye 474 and speaker 476 indicate video and audio capability and agreyed-out or phantom eye 474 and speaker 476 indicate that the audioand video for the user are unavailable. To enable or disable audio andvideo, a user interacts with audio and video enablers 462 and 464. Afterchecking or unchecking enablers 462 and 464, the status of audio andvideo capabilities for a given user are updated on other networkcommunication devices upon receipt of network participation packets.Data storage component 240 (FIG. 2) of the network communication device120 is checked to ascertain existing capabilities. Depending on themessage, a variable within data storage component 240 is changed toeither enable or disable audio or video, thereby updating usercapabilities in the network participation packets for that unique user.The network participation packet is broadcast to other users within thenetwork for updating on the recipient's users list.

To establish audio or video communication, a compatible audio inputdevice or video input device, for example a microphone or camera, may beconnected to the network communication device 120. To initiate an audioor video connection, the requesting user reviews online user list 414 toascertain which users have audio and video capability. In step 1202, oneuser selects another from audio video selector 448. Once the requestinguser clicks connector 450, both audio and video connectionsautomatically occur, unless enablers 462, 464 and 466 are disabled.

The process for establishing audio connection is shown in FIG. 12A. Instep 1202, a remote on line user is selected for an audio communicationconnection. After connector 450, FIG. 4, is clicked, in step 1204, therequesting network communication device checks the capabilities of theremote user in its data storage component 240, FIG. 2, ascertainingwhether audio capability is enabled for the select user. If audiocapability is present, in step 1206, a message is sent through audioinput/output filter 352 of the network communication device for thesender, authorizing sending of an audio connection packet to the remoteuser. In step 1208, FIG. 12A, the audio connection packet is sent to thenetwork communication device 120 of the remote user. In step 1210, FIG.12A, incoming packet queuing process 322 of the remote user receives thepacket and sends it to packet filter process 324, which ascertains itspurpose. Remote users can block requests for audio connection bydisconnecting connector 450 or by disabling broadcast local audioenabler 462 and remote audio enabler 466. Assuming both devices remainaudio enabled, in step 1210, a secure network connection is establishedand streaming audio can occur over a transmission control protocol(“TCP”) in step 1212, FIG. 12A, with audio capture 350 obtaining audiostreams from remote users. Compression and amplification filters 354 and356 respectively reduce the number of bits sent over the network andclarify audio transmission. Network communication devices 120 may, forexample, rely on Voice over Internet Protocol (VoIP) for audiocommunication, though other methodologies may be employed.

The process for establishing video connection is shown in FIG. 12B.Similar to audio connection, once a user clicks connector 450, FIG. 4,to select, in step 1202, FIG. 12B, a remote user for video contact, therequesting network communication device 120, FIG. 1, checks the datastorage component to ascertain whether a remote user is video capabilityenabled, in step 1216. If video capability is present, in step 1218,FIG. 12B, a message is sent through video display process 370 of thesender network communication device, authorizing sending of the videoconnection packet to the remote user. In step 1220, FIG. 12B, the videoconnection packet is sent to the network communication device 120 of theremote user. In step 1222, incoming packet queuing process 322 of theremote user receives the packet and sends it to packet filter process324, which ascertains its purpose. Remote users can block requests forvideo connection by disconnecting connector 450 or by disablingbroadcast local video enabler 464. In step 1224, FIG. 12B, videoconnection is established. Assuming both devices remain video enabled,in step 1226, a request for a video frame is issued by the video displayprocess of the sender and remote user network communication devices 120.The requesting network communication device sends a single video frameto the remote network communication device along with a request for aframe of video from the remote device. The remote network communicationdevice receives the frame, processes the received frame and responds tothe request by sending its own single video frame back. As these singleframes are being sent back and forth, a second video frame isconcurrently written by each device. Once the second frame is written, athird frame overwrites the first. In other words, once the systemfinishes writing a frame, it is sent and cleared to make way for thewriting of a new video frame, which, in turn is forwarded among thecommunicating users. This asynchronous transfer of data is repeated. Inthis way, a secure network connection is established and video transferoccurs over UDP. The network communication devices 120 may employ aframe-by-frame streaming JPEG format, which preserves video quality,even if network connections are interrupted.

Referring back to the graphical user interface 400 of FIG. 4, each ofthe three activity areas 402, 404, 406 may advantageously be minimizedor rearranged into different configurations. For example, voice/videochat activity area 404, FIG. 4, and file transfer activity area 406 maybe minimized while chat/instant message activity area 402 is in use.Alternatively, file transfer activity area 406 may be positioned abovechat/instant message activity area 402. That is, each activity areabehaves as a separate unit or module, comprising its own toolbar 404 andnavigation bar 406. Clicking on dock/undock icon 422 either fixes one ofthe activity areas in a specific location or frees it from a dockedlocation. When an activity area is in an undocked state, navigation bar406 may be employed to minimize, maximize and rearrange individualactivity areas.

Referring to FIG. 13, an example communication log 1300 representing ahistoric record of communications having occurred within the wirelessnetwork is shown. The core application process advantageously providescompiling and maintenance of the log documenting all communicationstaking place between the different network communication devices in thewireless local area network. The log identifies all text-based messages,audio and video communications, and file transfers between networkcommunication devices within the local area network. The log is storedin memory component 210, FIG. 1, and may be accessed at a later time toconfirm prior communications.

Wireless networks created in accordance with the connectivity as well asthe data, voice and video capabilities described herein canadvantageously be employed in a variety of situations. They areparticularly useful when traditional structured network communicationsare unavailable—for example when cell towers and/or centralized serversare inoperable. These wireless networks can be immediately deployed,established and utilized for communications in such situations includingdisaster relief, public safety, military conflicts, mining accidents andother emergency medical situations.

The foregoing description of the preferred embodiments of the inventionhave been presented for purposes of illustration and description, andare not intended to be exhaustive or to limit the invention to theprecise forms disclosed. The descriptions were selected to best explainthe principles of the invention and their practical application toenable others skilled in the art to best utilize the invention invarious embodiments and various modifications as are suited to theparticular use contemplated. It is intended that the scope of theinvention not be limited by the specification, but be defined by theclaims set forth below.

We claim:
 1. A network communication device for establishing andmaintaining wireless communication in a local area network comprising:an input and a display screen; a network participation module adapted toenable participation in a wireless network between a plurality ofnetwork communication devices in the absence of a centralized server; atext transfer module adapted to transfer a plurality of text-basedmessages throughout the network; an audio transfer module adapted totransfer audio from the network communication device to at least one orone other network communication device within the local area network;and a video transfer module adapted to transfer video from the networkcommunication device to the at least one other network communicationdevice within the network.
 2. The network communication device of claim1, wherein the network participation module is further adapted tobroadcast packets to the other network communication devices within thewireless network at a predetermined interval, wherein the packetscomprise a unique user identifier and user capabilities information. 3.The network communication device of claim 1, further comprising a filetransfer module for transferring files between the plurality of networkcommunication devices.
 4. The network communication device of claim 1,further comprising a panic alert module for sending a panic alertmessage to be displayed on a single display screen or all the displayscreens associated with network communication devices within thewireless network.
 5. The network communication device of claim 1,further comprising a log of all text-based messages, audio and videocommunications, and file transfers between network communication deviceswithin the wireless network.
 6. The network communication device ofclaim 1, wherein the text transfer module is adapted to send and receiveprivate text-based messages between three or more users at networkcommunication devices.
 7. The network communication device of claim 1,wherein communication between the network communication devices in thewireless network is maintained while the network communication devicesare in transit to different locations within the network.